class UserInfoModel {
  double? accountBalance;
  int? courierState;
  String? courierStateStr;
  int? accountState;
  String? accountStateStr;
  double? courieDiscount;
  String? tmcCourierCompanyAbbreviation;
  String? realName;
  String? identificationNumber;
  int? sex;
  String? address;
  int? realNameStatus;
  String? realNameStatusStr;
  double? wallet;
  String? phoneNumber;
  String? idCardNumber;
  double? withdrawFeeRate;
  bool? isAliWithHoldingPaySigned;
  int? userFirstChoicePayType;
  String? remarks;
  UserModelWechat? tmcWeixinInfo;
  UserBankAccount? bankAccount;

  UserInfoModel(
      {this.accountBalance,
      this.courierState,
      this.courierStateStr,
      this.accountState,
      this.accountStateStr,
      this.courieDiscount,
      this.tmcCourierCompanyAbbreviation,
      this.realName,
      this.identificationNumber,
      this.sex,
      this.address,
      this.realNameStatus,
      this.realNameStatusStr,
      this.wallet,
      this.phoneNumber,
      this.bankAccount,
      this.tmcWeixinInfo,
      this.idCardNumber,
      this.withdrawFeeRate,
      this.isAliWithHoldingPaySigned,
      this.userFirstChoicePayType,
      this.remarks});

  UserInfoModel.fromJson(Map<String, dynamic> json) {
    accountBalance = json['accountBalance'];
    courierState = json['courierState'];
    courierStateStr = json['courierStateStr'];
    accountState = json['accountState'];
    accountStateStr = json['accountStateStr'];
    courieDiscount = json['courieDiscount'];
    tmcCourierCompanyAbbreviation = json['tmcCourierCompanyAbbreviation'];
    realName = json['realName'];
    identificationNumber = json['identificationNumber'];
    sex = json['sex'];
    address = json['address'];
    realNameStatus = json['realNameStatus'];
    realNameStatusStr = json['realNameStatusStr'];
    wallet = json['wallet'];
    phoneNumber = json['phoneNumber'];
    idCardNumber = json['idCardNumber'];
    withdrawFeeRate = json['withdrawFeeRate'];
    isAliWithHoldingPaySigned = json['isAliWithHoldingPaySigned'];
    userFirstChoicePayType = json['userFirstChoicePayType'];
    remarks = json['remarks'];
    tmcWeixinInfo = (json["tmcWeixinInfo"] == null) ? null : UserModelWechat.fromJson(json["tmcWeixinInfo"]);
    bankAccount = (json["bankAccount"] == null) ? null : UserBankAccount.fromJson(json["bankAccount"]);
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['accountBalance'] = this.accountBalance;
    data['courierState'] = this.courierState;
    data['courierStateStr'] = this.courierStateStr;
    data['accountState'] = this.accountState;
    data['accountStateStr'] = this.accountStateStr;
    data['courieDiscount'] = this.courieDiscount;
    data['tmcCourierCompanyAbbreviation'] = this.tmcCourierCompanyAbbreviation;
    data['realName'] = this.realName;
    data['identificationNumber'] = this.identificationNumber;
    data['sex'] = this.sex;
    data['address'] = this.address;
    data['realNameStatus'] = this.realNameStatus;
    data['realNameStatusStr'] = this.realNameStatusStr;
    data['wallet'] = this.wallet;
    data['phoneNumber'] = this.phoneNumber;
    data['bankAccount'] = this.bankAccount;
    data['idCardNumber'] = this.idCardNumber;
    data['withdrawFeeRate'] = this.withdrawFeeRate;
    data['isAliWithHoldingPaySigned'] = this.isAliWithHoldingPaySigned;
    data['userFirstChoicePayType'] = this.userFirstChoicePayType;
    data['remarks'] = this.remarks;
    data["tmcWeixinInfo"] = this.tmcWeixinInfo?.toJson();
    data["bankAccount"] = this.bankAccount?.toJson();
    return data;
  }
}

/*
*  UserBankAccount对象
* */
class UserBankAccount {
  int? bankAccountType;
  int? tmcBranchId;
  int? userId;
  String? accountName;
  String? bankCardNumber;
  String? createTime;
  String? idCardNumber;
  String? reservedPhoneNumber;

  UserBankAccount({
    this.bankAccountType,
    this.tmcBranchId,
    this.userId,
    this.accountName,
    this.bankCardNumber,
    this.createTime,
    this.idCardNumber,
    this.reservedPhoneNumber,
  });

  UserBankAccount.fromJson(Map<String, dynamic>? json) {
    if (json == null) {
      return;
    }
    bankAccountType = json['bankAccountType'];
    tmcBranchId = json['tmcBranchId'];
    userId = json['userId'];
    accountName = json['accountName'];
    bankCardNumber = json['bankCardNumber'];
    createTime = json['createTime'];
    idCardNumber = json['idCardNumber'];
    reservedPhoneNumber = json['reservedPhoneNumber'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['bankAccountType'] = this.bankAccountType;
    data['tmcBranchId'] = this.tmcBranchId;
    data['userId'] = this.userId;
    data['accountName'] = this.accountName;
    data['bankCardNumber'] = this.bankCardNumber;
    data['createTime'] = this.createTime;
    data['idCardNumber'] = this.idCardNumber;
    data['reservedPhoneNumber'] = this.reservedPhoneNumber;
    return data;
  }
}

/*
* UserModelWechat
* */
class UserModelWechat {
  String? nickname;
  String? headimgurl;
  String? sex;
  String? country;
  String? province;

  UserModelWechat({this.nickname, this.headimgurl, this.sex, this.country, this.province});

  UserModelWechat.fromJson(Map<String, dynamic>? json) {
    if (json == null) {
      return;
    }
    nickname = json['nickname'];
    headimgurl = json['headimgurl'];
    sex = json['sex'];
    country = json['country'];
    province = json['province'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['nickname'] = this.nickname;
    data['headimgurl'] = this.headimgurl;
    data['sex'] = this.sex;
    data['country'] = this.country;
    data['province'] = this.province;
    return data;
  }
}
